package com.cskt.itripbiz.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cskt.common.condition.AddHotelOrderCondition;
import com.cskt.common.condition.SearchOrderCondition;
import com.cskt.common.condition.ValidateRoomStoreCondition;
import com.cskt.common.vo.*;
import com.cskt.entity.HotelOrder;

import java.util.Map;

public interface HotelOrderService extends IService<HotelOrder>{

    /**
     * 根据查询条件预生成订单
     *
     * @param condition
     * @return
     */
    RoomStoreVO getRoomStoreVOByCondition(ValidateRoomStoreCondition condition);

    /**
     * 生成订单
     *
     * @param condition
     * @return
     */
    Map<String, Object> addHotelOrder(AddHotelOrderCondition condition, Long userId);

    /**
     * 根据OrerId查询个人订单详情
     * @param orderId
     * @return
     */
    PersonalHotelOrderVO getPersonalHotelOrderVOByOrderId(Long orderId);

    /**
     * 根据orderId查询个人订单详情-房型信息
     * @param orderId
     * @return
     */
    PersonalOrderRoomVO getPersonalOrderRoomVOByOrderId(Long orderId);

    /**
     * 根据条件分页查询订单列表
     * @param condition
     * @return
     */
    Page<ListHotelOrderVO> getOrderPageByCondition(SearchOrderCondition condition);

    /**
     * 根据订单Id查询订单信息，用于修改
     * @param orderId
     * @return
     */
    ModifyHotelOrderVO getModifyHotelOrderVOByOrderId(Long orderId);


}
